package com.bsj.power.pls.service;

import com.bsj.power.common.config.global.JsonResult;
import com.bsj.power.common.def.dto.path.PathBanDTO;
import com.bsj.power.common.def.dto.path.PathDTO;
import com.bsj.power.common.def.dto.path.PathSearchDTO;
import com.bsj.power.common.def.vo.DeviceVO;
import com.bsj.power.common.def.vo.pls.PathVO;

import java.util.List;

/**
 * @author LiJiaXin
 * @version 1.0.0
 * @description PathService
 * @time 2024/4/20 10:50
 */
public interface PathService {

    /**
     * 添加围栏
     *
     * @param pathDTO
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/4/20 11:59
     */
    JsonResult addPath(PathDTO pathDTO);

    /**
     * 删除围栏
     *
     * @param pathId
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/4/20 12:00
     */
    JsonResult deletePath(Integer pathId);

    /**
     * 修改围栏
     *
     * @param pathDTO
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/4/20 12:00
     */
    JsonResult updatePath(PathDTO pathDTO);

    /**
     * 获取单个围栏
     *
     * @param pathId
     * @return com.bsj.power.common.def.vo.pls.PathVO
     * @author ljx
     * @time 2024/4/20 12:00
     */
    PathVO getPathById(Integer pathId);

    /**
     * 围栏分页
     *
     * @param pathSearchDTO
     * @return com.bsj.power.common.config.global.JsonResult<java.util.List < com.bsj.power.common.def.vo.pls.PathVO>>
     * @author ljx
     * @time 2024/4/20 12:00
     */
    JsonResult<List<PathVO>> pagePath(PathSearchDTO pathSearchDTO);

    /**
     * 根据围栏id查询视频设备信息
     *
     * @param pathId
     * @return java.util.List<com.bsj.power.common.def.vo.DeviceVO>
     * @author ljx
     * @time 2024/9/18 14:39
     */
    List<DeviceVO> getVideoDevicesByPathId(Integer pathId);

    /**
     * 是否禁用
     *
     * @param pathBanDTO
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/12/28 12:06
     */
    JsonResult isBan(PathBanDTO pathBanDTO);
}
